The present disclosure relates to a modulation table, a modulating apparatus and a modulating method, a program, and a recording medium, and, more particularly to a modulation table, a modulating apparatus and a modulating method, a program, and a recording medium adapted to reduce successive occurrence of a minimum run.
In transmitting data on a predetermined transmission line or recording data in a recording medium such as a magnetic disk, an optical disk, or a magneto-optical disk, data is modulated to be suitable for the transmission line or the recording medium. As one of methods for such modulation, a block code is known. The block code is a code for converting a data row into blocks of m×i bit units (hereinafter referred to as data word) and converting this data word into a code word including n×i bits in accordance with an appropriate code rule. When i=1, this code word is a fixed length code. When plural values for i can be selected, that is, when a predetermined i in a range of 1 to imax (maximum of i) is selected and converted, this code word is a variable length code. This block encoded code is represented as a variable length code (d,k;m,n;r).
Here, “i” is referred to as a constraint length and imax is r (a maximum constraint length). “d” indicates, for example, a minimum number of consecutive “0” in repeated “1”s, that is, a minimum run of “0”. “k” indicates a maximum number of consecutive “0” in repeated “1”s, that is, a maximum run of “0”.
When the code word obtained as described above is recorded in the optical disk, the magneto-optical disk, or the like, for example, in a compact disc (CD) and a mini-disc (MD)®, NRZI (NonReturn to Zero Inverted) modulation, wherein “1” means inversion and “0” means non-inversion, is performed on a variable length code sequence. The code word is recorded on the basis of the NRZI modulated variable length code (hereinafter referred to as recorded waveform sequence). This is referred to as mark edge recording. On the other hand, in a magneto-optical disk or the like with a size of 3.5 inch and a capacity of 230 MB in the ISO standard, a code sequence recorded and modulated is directly recorded without being subjected to the NRZI modulation. This is referred to as mark position recording. In the present recording media having high recording density, the mark edge recording is often used.
If a minimum inversion interval of the recorded waveform sequence is Tmin and a maximum inversion interval is Tmax, to performing recording at high density in a linear velocity direction, the minimum inversion interval is desirably long, that is, the minimum run d is desirably large. From a clock reproduction aspect, the maximum inversion interval is desirably short, that is, the maximum run k is desirably small. When an overwrite characteristic is taken into account, Tmax/Tmin is desirably small. Moreover, from viewpoints of Jitter and S/N, it is important that a detection window width Tw=m/n is large. Various modulating methods have been proposed in view of conditions of media and put to practical use.
Specifically, examples of modulation systems proposed or actually used in optical disks, magnetic disks, magneto-optical disks, or the like are described. An EFM code (also represented as (2,10;8,17;1)) used in CDs and MDs, an 8-16 code (also represented as (2,10;1,2;1)) used in DVDs (Digital Versatile Discs), and an RLL(2,7) (also represented as (2,7;m,n;r)) used in PDs (120 mm and 650 MB) are RLL codes with the minimum run d=2. An RLL(1,7) (also represented as (1,7;2,3;r)) used in MD-DATA2 or a 3.5 inch MOs (640 MB) in the ISO standard is an RLL code with the minimum run d=1. Besides, in recording and reproducing disk devices such as optical disks and magneto-optical disks with high recording density, which are currently under research and development, an RLL code with the minimum run d=1 (Run Length Limited code) with well-balanced size of a minimum mark and conversion efficiency is often used.
A modulation table of the variable-length RLL(1,7) code is, for example, a table adopting a data pattern and a code pattern corresponding to the data pattern described below as conversion patterns.
TABLE 1RLL(1,7):(d,k;m,n;r) = (1,7;2,3;2)Data PatternCode Patterni = 11100x100100110xi = 20011000 00x0010000 0100001100 00x0000100 010
A sign x in this modulation table is set as “1” when a channel bit following the sign x is “0” and is set as “0” when a channel bit following the sign x is “1”. The maximum constraint length r is 2.
A parameter of the variable length RLL(1,7) is (1,7;2,3,2). When a bit interval of a recording waveform sequence is T, the minimum inverting interval Tmin represented by (d+1)T is 2(=1+1)T. When a bit interval of a data row is Tdata, the minimum inverting interval Tmin represented by (m/n)×2 is 1.33(=(2/3)×2)Tdata. The maximum inverting interval Tmax represented by (k+1)T is Tmax=8(=7+1)T(=(m/n)×8Tdata=(2/3)×8Tdata=5.33Tdata). The detection window width Tw is represented by (m/n)×Tdata. A value of the detection window width Tw is 0.67(=2/3)Tdata.
In a channel bit string, which has been modulated by RLL(1,7) in Table 1, 2 T, which is the minimum run (Tmin), occurs most frequently. 3 T occurs less frequently than 2 T, 4 T occurs less frequently than 3 T, 5 T occurs less frequently than 4 T, and 6 T occurs less frequently than 5 T, and so on. When 2 T, which is the minimum run (Tmin), repeatedly occurs, that is, when edge information often occurs at an early period, this is advantageous for clock reproduction.
However, when the recording linear density is further increased, for example, in recording and play of the optical disk, the minimum run is a portion where an error tends to occur. This is because, at the time of disk play, a waveform output of the minimum run is smaller than those of other runs. The disk play is susceptible to, for example, defocus and tangential tilt. Moreover, recording and play with successive minimum marks at the high recording linear density is susceptible to disturbance such as noise as well. Therefore, a data reproduction error tends to occur. As a pattern of the data reproduction error in this case, all edges from a leading edge to a last edge of the successive minimum marks shift all at once to cause errors. In other words, a bit error length generated is propagated from the top to the last in a section of successive minimum runs. This causes a problem in that error propagation is long.
Consequently, for stabilization at the time when data is recorded and reproduced at high linear density, it is effective to limit the successive occurrence of minimum runs.
On the other hand, in recording of data in a recording medium or transmission of data, encoding modulation suitable for the recording medium or the transmission line is performed. When a low frequency component is included in modulation codes, for example, fluctuation in various error signals such as a tracking error in servo control of a disk device tends to occur or jitter tends to occur. Therefore, it is desirable that, in the modulation codes, the low frequency component is controlled as much as possible.
As a method of controlling the low frequency component, there is DSV (Digital Sum value) control. The DSV means a sum of codes at the time when a channel bit string is subjected to the NRZI modulation (i.e., converted into level codes) to be a recording code sequence and the “1” bits of the channel bit string (data symbols), that is, +1 codes, are added, whereas the “0” bits of the channel bit string, that is, −1 codes, are added. The DSV can serve to predict the low frequency component in the recording code sequence. To decrease the absolute value of fluctuation in plus and minus of the DSV, that is, to perform DSV control is to remove a direct-current component of the recording code sequence and control the low frequency component.
The modulation codes according to the variable length RLL(1,7) shown in Table 1 are not subjected to the DSV control. The DSV control in such a case is realized by performing DSV calculation at a predetermined interval in an encoded string (a channel bit string) after modulation and inserting predetermined DSV control bits in the encoded string (the channel bit string) (see, for example, JP-A-6-197024).
The number of DSV control bits to be inserted in the channel bit string depends on the minimum run d. At the time of d=1, when the DSV control bits are inserted in arbitrary positions in a code word to preserve the minimum run, a necessary number of bits is 2(=d+1) channel bits. When the DSV control bits are inserted in arbitrary positions in a code word to preserve the maximum run, necessary bits are 4(=2×(d+1)) channel bits. When the DSV control is performed with channel bits smaller in number than this, the DSV control may not be performed depending on patterns preceding and following the channel bits.
In the RLL(1,7) with (d,k;m,n)=(1,7;2,3), when the DSV control bits are converted into data by a conversion rate, the data is calculated as follows.4 channel bits×2/3=8/3=2.67 data equivalent (2.67 Tdata)
Basically, the DSV control bits are redundant bits. Therefore, from the viewpoint of efficiency of code conversion, a smaller number of DSV control bits are better.
Moreover, it is preferable that the minimum run d and the maximum run k do not change because of the DSV control bits inserted. This is because, when (d,k) changes, recording and reproduction characteristics are affected.
However, in an actual RLL code, since the minimum run substantially affects the recording and reproduction characteristics, the minimum run should be preserved. However, the maximum run is not always preserved. In some formats, a pattern breaking the maximum run is used as a synchronization pattern. For example, although the maximum run in an 8-16 code of a DVD (Digital Versatile Disk) is 11 T, 14 T exceeding the maximum run is given in an synchronization pattern portion to improve detection ability of the synchronization pattern.
In view of the above, the inventors have proposed a 1,7 PP code in Table 2 before as a modulation system with (d,k)=(1,7) and corresponding to high recording density (see, for example, JP-A-11-346154).
TABLE 21,7PP:(d,k;m,n;r) = (1,7;2,3;4)Data PatternCode Pattern11*0*10001010100011010 1000010010 0000001000 100000011000 100 100000010000 100 000000001010 100 100000000010 100 000110111001 000 000 (next010)0001000000 100 100 1000000000010 100 100 100If xx1 then *0* = 000xx0 then *0* = 101Sync & Termination#01 001 000 000 001 000 000 001 (24 channel bits)# = 0 not terminate case# = 1 terminate caseTermination table000000000010 100110111001 000 000 (next010)When next channel bits are ‘010’,convert ‘11 01 11’ to ‘001 000 000’.
A modulation table in Table 2 has, as conversion patterns, a basic pattern without which it is difficult to perform conversion processing (a conversion pattern including data patterns (11) to (000000)), a replacement pattern without which it is still possible to perform the conversion processing but with which more effective conversion processing is realized (a conversion pattern including data patterns (110111), (00001000), and (00000000)), and a termination pattern for terminating a data row in an arbitrary position (conversion patterns including data patterns (00) and (0000)).
In Table 2, the minimum run d=1, the maximum run k=7, and undetermined codes (codes represented by *) are included in elements of the basic pattern. The undetermined codes are determined as “0” or “1” to preserve the minimum run d and the maximum run k regardless of code word string immediately preceding or following the codes. In other words, in Table 2, when 2 bits of the data to be converted are (11), depending on a code word string (a channel bit string) immediately preceding the data, “000” or “101” is selected and the data is converted into “000” or “101”. For example, when one channel bit of the code word string immediately preceding the 2-bit data is “1”, the 2-bit data (11) is converted into a code word “000” to preserve the minimum run d. When one channel bit of the code word string immediately preceding the data is “0”, the 2-bit data (11) is converted into a code word “101” to preserve the maximum run k.
The basic pattern in the modulation table in Table 2 has a variable-length structure. In other words, a basic pattern at the constraint length i=1 includes three items (*0*, 001, and 010) less than a necessary number 4 (2^m=2^2=4). As a result, in converting a data row, there is a data row that may not be converted only at the constraint length i. After all, in Table 2, it is necessary to refer to basic pattern up to the constraint length i=3 in order to convert all the data rows (to allow the modulation table to function as a modulation table).
The modulation table in Table 2 has the replacement pattern for limiting successive occurrence of the minimum run d. Thus, when a data row is (110111), a code word string following the data row is referred to. When the code word string is “010”, this six-bit data is replaced with a code word “001 000 000”. When the code word string following the data row is other than “010”, the data row is converted into a code word in units of 2-bit data ((11), (01), (11)). Thus, the data is converted into a code word “*0* 010 *0*”. Consequently, in the code word string obtained by converting the data, successive occurrence of the minimum run is limited to six times at the maximum.
In the modulation table in Table 2, the maximum constraint length r is 4. A conversion pattern with the constraint length i=4 includes a replacement pattern (a maximum run guarantee pattern) for realizing the maximum run k=7. In other words, the data pattern (00001000) is converted into a code pattern “000 100 100 100”. The data pattern (00000000) is converted into a code pattern “010 100 100 100”. Even in this case, the minimum run d=1 is preserved.
In Table 2, to insert the synchronization pattern, when the data row is terminated in an arbitrary position of the data pattern, the termination pattern is used in terminating the data row in (00) or (0000). In the synchronization pattern to be inserted, one code word at the top is an identification bit using the termination pattern. When the termination pattern is used, a leading code word of an immediately-following synchronization pattern is “1”. When the termination pattern is not used, the leading code word is “0”. The synchronization pattern in Table 2 includes the identification bit using the termination pattern and twenty-four code words in total, that is, code words obtained by repeating a code word of k=8 exceeding the maximum run k=7 twice to detect the synchronization pattern.
The conversion patterns in Table 2 have a conversion rule that, when the number of “1s” in elements of a data pattern and the number of “1s” in elements of a code pattern to be converted are divided by 2, the remainders are the same, either “1” or “0” (the number of “1s” is an odd number or an even number in both the elements corresponding to each other). For example, the data pattern (000001) among the conversion patterns corresponds to the code pattern “010 100 100”. The number of “1s” in elements in the data pattern is one and the number of “1s” in the code pattern is three. When the number of “1s” in the data pattern and the number of “1s” in the code pattern are divided by 2, the remainders are the same 1 (odd number). Similarly, the data pattern (000000) among the conversion patterns corresponds to the code pattern “010 100 000”. The number of “1s” in the data pattern is zero and the number of “1s” in the code pattern is two. When the number of “1s” in the data pattern and the number of “1s” in the code pattern are divided by 2, the remainders are the same 0 (even number).
A method of performing the DSV control will be explained. The DSV control in the past in the case in which the DSV control is not applied to the modulation table like the RLL(1,7) code in Table 1 is performed by, after modulating a data row, adding at least (d+1) DSV control bits to a channel bit string after modulation at a predetermined interval. Even in the modulation table shown in Table 2, it is possible to perform the DSV control as in the past. However, it is possible to more efficiently perform the DSV control by utilizing a relation between the data pattern and the code pattern to be converted in Table 2. In other word, when the modulation table has the conversion rule that, when the number of “1s” in elements of a data pattern and the number of “1s” in elements of a code pattern to be converted are divided by 2, the remainders are the same, either “1” or “0”, inserting a DSV control bit “1” indicating “conversion” or a DSV control bit “0” indicating “non-conversion” in the channel bit string is equivalent to inserting a DSV control bit “1” in a data bit string to convert the data bit string or inserting a DSV control bit “0” in the data bit string not to convert the data bit string.
For example, in Table 2, when there are successive three “001” bits to be subjected to data conversion, if the DSV control bit is inserted behind the 3 bits, data is represented as (001−x) (x is one bit, “0” or “1”). If “0” is given to x, in the modulation table in Table 2, the following conversion is performed.
Data PatternCode Pattern0010010 000
If “1” is given, the following conversion is performed.
Data PatternCode Pattern0011010 100
When the code word string is subjected to NRZI modulation, the following level code string is generated.
Data PatternCode PatternLevel Code String0010010 000011 1110011010 100011 000
The last 3 bits of each level code are inverse to the last 3 bits of the other level code. This means that the DSV control can be performed in the data row by selecting either “1” or “0” for the DSV control bit x.
Considering the redundancy due to the DSV control, to perform DSV control on one bit in the data row is to perform the DSV control on 1.5 channel bits according to the conversion rate (m:n=2:3) in Table 2 if the bit is represented as a channel bit string. On the other hand, in order to perform the DSV control in the RLL(1,7) table shown in Table 1, it is necessary to perform the DSV control in the channel bit string. In this case, in order to preserve the minimum run, at least two channel bits are necessary. Compared with the DSV control in Table 2, the redundancy increases. In other words, when the modulation table as a table structure of Table 2, it is possible to efficiently perform the DSV control by performing the DSV control in the data row.
The modulation table in Table 2 having the minimum run and the maximum run of (d,k)=(1,7) and corresponding to high recording density explained above is adopted as a format in, for example, Blue-ray Disc Rewritable ver1.0™, which is a high-density optical disk system.
A more stable system is demanded in a modulation system to cope with higher recording density in future, more specifically, for example, a high density standard for high-density optical disks.
In that case, if a modulation system for realizing a more stable system with a parameter same as the (1,7)PP code in the past and a structure of a modulation table same as that in the past is realized for Blu-ray disc Rewritable ver1.0, which has already been commercialized, it is possible to divert the design technique in the past. Thus, it is possible to reduce design risks at the time of hardware designing.
As described above, when the RLL code is recorded and reproduced in a disk at high linear density, if there is a pattern with the successive minimum run d, a long error tends to occur. It is necessary to insert redundant bits to perform the DSV control in the (1,7;2,3) code. It is necessary to reduce the redundant bits as much as possible. Under such circumstances, the RLL code (d,k;m,n)=(1,7;2,3) with the minimum run d=1 is developed. In the RLL code, a modulation system for generating a more stable code string is demanded for the 1,7 PP code that has a characteristic that it is possible to perform the DSV control with highly efficient control bits while limiting the number of times of successive occurrence of the minimum run and preserving the minimum run and the maximum run. Specifically, for example, a modulation system for further reducing occurrence of errors due to edge shift is demanded.
Taking hardware designing into account, it is demanded that the modulation table should have a table structure same as the 1,7 PP code in the past.
It is desirable to, with a basic structure of a modulation table set to be the same as the 1,7 PP code, reduce the number of times of successive occurrence of the minimum run from that in the past without increasing a size of an apparatus and reduce occurrence of a long error at the time of recording and reproduction.